package com.hmdp.utils;

import com.hmdp.dto.UserDTO;

/**
 * 在当前线程中保存、获取和移除用户信息（UserDTO），
 * 其核心目的是实现线程上下文中的用户信息共享，通常用于处理每个请求独立的用户数据，
 * 比如 Web 应用中每个请求对应一个线程。
 */
public class UserHolder {
    private static final ThreadLocal<UserDTO> tl = new ThreadLocal<>();

    /**
     * 保存用户信息
     * @param user
     */
    public static void saveUser(UserDTO user) {
        tl.set(user);
    }

    /**
     *获取用户信息
     * @return
     */
    public static UserDTO getUser() {
        return tl.get();
    }

    /**
     *移除用户信息
     */
    public static void removeUser() {
        tl.remove();
    }
}
